#include <stdio.h>
#include <stdlib.h>
/*
 * int a[N] = {1,2,3,4,5,6};
 * int *p = a;
 * 
 * ->	a		*a		a[0]	&a[3]		p[i]	p	*p	p+1
 * 	 地址		地址对应的值	值      值对应的地址	地址	地址	值	地址
 *
 * ->	指针		值		值	指针		指针	指针	值	指针
 *
 * */
//void print_arr(int p[],int n) 另一种写法 此处的p[](形参) 依然是指针 
void print_arr(int *p,int n)
{	
	int i = 0;
	printf("%s:%d\n",__FUNCTION__,sizeof(p));
	for (i = 0; i<n;i++)
		printf("%d ",*(p+i));
	printf("\n");
}


void func(int *p,int n)
{
	int start=0,end=n-1,temp = 0;
	for(;;start++,end--)
	{
		temp = *(p+start);
		*(p+start) = *(p+end);
		*(p+end) = temp;
		if (start == end||start == end -1)
			break;
	}

}


int main(int argc,char *argv[])//char **argv 并非二级指针 而是一个指针数组   * == []
{
	int arr[] = {1,3,5,7,9,11};
	printf("%s:%d\n",__FUNCTION__,sizeof(arr));
	print_arr(arr,sizeof(arr)/sizeof(*arr));
	func(arr,sizeof(arr)/sizeof(*arr));
	print_arr(arr,sizeof(arr)/sizeof(*arr));

	return 0;
}
